package org.poseidon.report.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.poseidon.report.domain.BuDiary;
import org.poseidon.report.domain.vo.BuDiaryVO;

/**
 * 周报Mapper接口
 * 
 * @author gfc
 * @date 2022-02-22
 */
public interface BuDiaryMapper 
{
    /**
     * 查询周报
     * 
     * @param id 周报主键
     * @return 周报
     */
    public BuDiary selectBuDiaryById(Integer id);

    /**
     * 查询周报列表
     * 
     * @param buDiary 周报
     * @return 周报集合
     */
    public List<BuDiaryVO> selectBuDiaryList(BuDiaryVO buDiary);

    /**
     * 新增周报
     * 
     * @param buDiary 周报
     * @return 结果
     */
    public int insertBuDiary(BuDiary buDiary);

    /**
     * 修改周报
     * 
     * @param buDiary 周报
     * @return 结果
     */
    public int updateBuDiary(BuDiary buDiary);

    /**
     * 删除周报
     * 
     * @param id 周报主键
     * @return 结果
     */
    public int deleteBuDiaryById(Integer id);

    /**
     * 批量删除周报
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBuDiaryByIds(@Param(value = "ids")List<Integer> ids);

    List<BuDiaryVO>  selectiveList(BuDiaryVO buDiary);

    BuDiaryVO selectByPrimaryId(Integer id);

    int countDiaryByMilestoneList(@Param(value = "ids")List<Long> ids);

    int countDiaryProjectList(@Param("ids")List<Long> ids);

    int selectByMilestoneIds(@Param("deletedMileIds") List<Long> deletedMileIds);
}
